/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package kivuli.visao.item;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.net.URL;
import javax.swing.ImageIcon;
import kivuli.entidade.Casa;
import kivuli.entidade.Figura;
import kivuli.visao.popup.PopupCasa;

/**
 *
 * @author JULIENA NOBRE SOARES
 */
public class ItemCasa extends ItemDeDesenho {

    private static final URL PATH_IMAGEM
            = ItemDeDesenho.class.getResource("/resources/images/casa.png");

    private final ImageIcon image;

    public ItemCasa(Casa casa) {
        super(casa);
        image = new ImageIcon(PATH_IMAGEM);
        this.setSize(casa.getComprimento() + 1, casa.getLargura() + 1);
        this.setComponentPopupMenu(new PopupCasa(this));
    }

    @Override
    public void setFigura(Figura figura) {
        super.setFigura(figura);
        if (figura != null && figura instanceof Casa) {
            Casa casa = (Casa) figura;
            this.setSize(casa.getComprimento() + 1,
                    casa.getLargura() + 1);
        }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Casa casa = (Casa) getFigura();
        setLocation(casa.getX(), casa.getY());
        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.drawImage(image.getImage(),
                (casa.getComprimento() - (int) (casa.getComprimento() * 0.35)) / 2,
                (casa.getLargura() - (int) (casa.getLargura() * 0.35)) / 2,
                (int) (casa.getComprimento() * 0.35),
                (int) (casa.getLargura() * 0.35), null);
        g2d.draw3DRect(0, 0, casa.getComprimento(), casa.getLargura(), true);
        g2d.dispose();
    }
}
